Designing of logic circuit for testability

ABSTRACT

The area of the circuit to be added for easy testability is reduced. Operations contained in a behavioral description are extracted in an operation analyzing unit; when expanding any operation at the time of behavioral synthesis, if the area of the circuit can be reduced to a greater extent when a DFT is applied to the operation before expansion, a parameter indicating that the operation is not to be expanded at the time of behavioral synthesis is generated and DFT information is added to a DFT library. A behavioral synthesis unit, in accordance with the parameter, generates an RTL description without expanding the operation. A DFT unit implements the DFT by referring to the DFT library, and thereafter expands the operation.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to a method and apparatus for applying a design-for-testability (DFT) technique to a logic circuit, and a program for implementing the same.

[0003] 2. Description of the Related Art

[0004] Prior known DFT techniques for logic circuits include one described in a paper by Wada H., Masuzawa, K. Saluja, and Fujiwara, entitled “A non-scan DFT method for data paths to provide complete fault efficiency,” IEICE Transaction D-I, VOL. J82-D-I, No. 7, July 1999. According to this paper, an RTL circuit description and a DFT library are input to generate an RTL circuit with DFT by incorporating circuits for realizing DFT therein.

[0005] The circuits for realizing DFT, each having a register hold function or a pass-through function using a mask element or a bypass circuit, are added, as needed, to each circuit element in order to enable an arbitrary value to be applied from an external input to an input of the circuit element under test and an output value from the circuit element to be propagated to an external output.

SUMMARY OF THE INVENTION

[0006] In generating the circuit with DFT, it is desired that the area of the circuit to be added to each arithmetic operation unit for easy testability be made as small as possible. An object of the present invention is to reduce the area of the circuit to be added for easy testability.

[0007] To solve this problem, according to the present invention, operations contained in a behavioral description are extracted and, for each extracted operation, a decision is made as to whether DFT is to be applied to the operation before expansion or to each of a plurality of circuit elements into which the operation has been expanded, and an RTL description with DFT is generated from the behavioral description in accordance with the thus made decision.

[0008] The decision is made, for example, by evaluating the increase in circuit area that would result from applying DFT.

BRIEF DESCRIPTION OF THE DRAWINGS

[0009]FIG. 1 is a diagram showing a DFT process according to the prior art;

[0010]FIG. 2 is a diagram showing one example of an operation contained in a behavioral description;

[0011]FIG. 3 is a diagram showing the operation of FIG. 2 in an expanded form;

[0012]FIG. 4 is a diagram showing one example of a DFT implemented by considering the operation before expansion;

[0013]FIG. 5 is a diagram showing a DFT process according to the present invention;

[0014]FIG. 6 is a diagram showing one example of the operation of an operation analyzing unit;

[0015]FIG. 7 is a diagram showing one example of the operation of a DFT library and parameter generating unit;

[0016]FIG. 8 is a data flow graph showing another example of the behavioral description;

[0017]FIG. 9 is a diagram showing a multiplier in an expanded form;

[0018]FIG. 10 is a diagram showing one example of DFT implemented by considering the multiplier before expansion;

[0019]FIG. 11 is a diagram showing an RTL description generated from the behavioral description of FIG. 8;

[0020]FIG. 12 is a diagram showing an RTL description with DFT; and

[0021]FIG. 13 is a diagram showing another example of the DFT process of the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0022] In the prior art, the addition of the circuits for realizing DFT has been implemented, as shown in FIG. 1, by first generating an RTL description 14 by behavioral synthesis 12 from a behavioral description 10 which describes circuit behavior in the C language or the like, and then referring to a DFT library 17 (16 and 18). When generating the RTL description 14, each operation contained in the behavioral description, for example, the operation

Y=|A−B| (see FIG. 2)

[0023] is expanded as shown below.

[0024] if

A>B

[0025] then

Y=A−B

[0026] else

Y=B−A

[0027] This corresponds to the circuit shown in FIG. 3. After the operation has been expanded, DFT 16 is accomplished by referring to the prior art DFT library 17, and thus circuits for implementing the pass-through function are added to each of a comparator 22 and a subtractor 24 in FIG. 3.

[0028] On the other hand, if attention is paid to the operation of FIG. 2 before expansion, the pass-through function for the operation Y=|A−B| can be achieved as shown in FIG. 4 by just adding an AND circuit 26 whose B input is set zero when its TEST input is set to 0, and the area of the circuit to be added to implement the DFT can thus be reduced.

[0029] In the present invention, for each operation contained in the behavioral description, a decision is made as to whether the DFT is applied to the operation before expansion or to each of the circuit elements into which the operation has been expanded and, based on the decision thus made, an RTL description with DFT is generated from the behavioral description. This decision is made, for example, by evaluating the increase in circuit area that would result from adding the DFT method.

[0030]FIG. 5 is a flowchart illustrating one embodiment of a DFT process according to the present invention, FIG. 6 shows one example of the processing performed by an operation analyzing unit 30 contained therein, and FIG. 7 shows one example of the processing performed by a DFT library and parameter operation unit 34.

[0031] In FIG. 5, the operation analyzing unit 30 analyzes the kind of each operation appearing in the behavioral description 10 and extracts the operation. For example, in the case of a circuit for calculating the Manhattan distance between two points (a1, a2) and (b1, b2) as shown in FIG. 6, two operations, “diff(A, B)” and “+”, are extracted as a for-use operation list 32 from the behavioral description 10.

[0032] The DFT library and parameter generating unit 34 takes the for-use operation list 32 as an input and, for each operation, makes a decision as to whether the operation is expandable or not; if it is expandable, the area of the circuit to be added, for example, is evaluated for the case where the DFT is applied to the operation before expansion and for the case where the DFT is applied after the expansion and, based on the result of the evaluation, a decision is made as to whether the DFT is to be applied to the operation before expansion or after the expansion. For any operation for which it is determined that the DFT is to be applied before expansion, a parameter 36 indicating that the operation is not to be expanded and information to be added to the DFT library 17 is generated and output. The information to be added to the DFT library includes the operation itself, how the DFT is implemented for the operation, and how the expansion is performed for the operation.

[0033] In the example of the circuit for calculating the Manhattan distance, a parameter indicating that Y=diff(A, B) is not to be expanded is generated, and the operation diff(A, B), how its pass-through function is added, and circuit information for expansion are generated as the information to be added to the DFT library 17, as shown in FIG. 7.

[0034] Turning back to FIG. 5, a behavioral synthesis unit 12′ generates an RTL description 14′ from the behavioral description 10. At this time, any operation specified by the parameter 36 not to be expanded is not expanded. A DFT unit 16′ applies the DFT to the RTL description 14′ by referring to the DFT library 17′. At this time, in the case of an operation whose circuit information for expansion is stored in the DFT library 17′, the operation is expanded after adding the circuit generated for realizing DFT, and thus an RTL description with DFT 18′ is generated. In the example of the circuit for calculating the Manhattan distance, an AND circuit (the same one as described earlier) is added to the B input in Y=|A−B| to implement the DFT, and the RTL description with DFT is generated in the form expanded into a comparator, selectors, and a subtractor.

[0035]FIG. 8 shows a data flow graph corresponding to a behavioral description of a third-order lattice wave filter. In the figure, PI is a data input, PO is a data output, D1, D2, and D3 are data conversions, and solid black circles are variables. In this case, the operation list that the operation analyzing unit 30 extracts is

{+(addition), *(multiplication)}

[0036] In behavioral synthesis, a multiplier is usually expanded into a circuit shown in FIG. 9 that uses an adder, but if a DFT is applied to each circuit element of the expanded circuit, the area of the circuit to be added will increase. Therefore, the DFT library and parameter operation unit 34 adds to the DFT library the expanded configuration shown in FIG. 9 and the shown in FIG. 10 for the multiplier, and generates a parameter indicating that *(multiplication) is not to be expanded into the circuit that uses an adder.

[0037] As a result, the behavioral synthesis unit 12′ generates the RTL description 14′ without expanding the multiplier (Mult. 1), as shown in FIG. 11, and the DFT unit 16′ applies DFT to the multiplier, as shown in FIG. 12, by referring to the DFT library 17′. Though not shown here, the DFT unit 16′ thereafter expands the multiplier Mult. 1 into the configuration that uses an adder, based on the information stored in the DFT library 17′.

[0038] In the above example, the behavioral synthesis, the operation analyzing unit, and the DFT library and parameter generating unit have been described as being constructed as separate parts, but the configuration of the invention can also be implemented by incorporating the functions of the operation analyzing unit and the DFT library and parameter generating unit into the behavioral synthesis.

[0039] Furthermore, the configuration can also be implemented by changing the behavioral description itself as shown in FIG. 13. In this case, in the example of the Manhattan distance calculation described above, the behavioral description

[0040] (Manhattan distance calculation)

Y=diff(a1, b1)+diff(a2, b2)

diff(A, B)=|A−B|

[0041] is converted in a block 40 into

[0042] (Manhattan distance calculation)

Y=diff(a1, b1)+diff(a2, b2)

diff(A, B)=|A−B|

[0043] (Algorithm for diff(A, B))

[0044] if

A>B

[0045] then

diff(A, B)=A−B

[0046] else

diff(A, B)=B−A

[0047] and a parameter indicating that diff(A, B) is not to be expanded is generated. The behavioral synthesis unit 12′ generates the RTL description without expanding diff(A, B), as directed by the parameter, and the DFT unit 16′ expands the operation after applying DFT to diff(A, B) by referring to the DFT library 17′.

[0048] The DFT method described so far is implemented using a program for causing a computer to execute prescribed processing. The program may be stored on a hard disk connected to the computer, or may be stored on a storage medium such as a CD-ROM and may be read as needed into an internal storage device within the computer by inserting the CD-ROM in a CD-ROM drive; alternatively, the program may be stored in a storage device connected to a network and may be read as needed into an internal storage device within the computer via the network. The method and apparatus of the invention are thus achieved.

[0049] As described above, according to the present invention, there is offered the advantageous effect of being able to reduce the area of the circuit to be added for easy testability. 

1. A DFT (design for testability) method, comprising the steps of: (a) extracting operations contained in a behavioral description; (b) making a decision for each extracted operation as to whether DFT is to be applied to the operation before expansion or to each of a plurality of circuit elements into which the operation has been expanded; and (c) generating an RTL description with DFT from the behavioral description in accordance with the decision.
 2. A method according to claim 1, wherein the step (b) includes the substeps of: (i) generating for each extracted operation a parameter indicating whether or not the operation is to be expanded into a plurality of circuit elements; and (ii) generating DFT information indicating how DFT is implemented and circuit information indicating how expansion is performed for the operation when it is decided that the DFT is to be applied to the operation before expansion, and the step (c) includes the substeps of: (i) generating an RTL description from the behavioral description in accordance with the parameter, the RTL description including a first RTL description generated by expanding the operation into a plurality of circuit elements and a second RTL description generated without expanding the operation; and (ii) generating the RTL description with DFT from the first and the second RTL description in accordance with the DFT information and the circuit information.
 3. A method according to claim 2, wherein the DFT information and the circuit information are added to a DFT library which stores the DFT information for each circuit element, and in the substep (c)(ii), the RTL description with DFT is generated from the first and the second RTL description by referring to the DFT library.
 4. A method according to claim 1, wherein the decision in the step (b) is made by evaluating an increase in circuit area that would result from applying DFT.
 5. An apparatus for realizing DFT method, comprising: an operation analyzing unit for extracting operations contained in a behavioral description; means for making a decision for each extracted operation as to whether a DFT is to be applied to the operation before expansion or to each of a plurality of circuit elements into which the operation has been expanded; and means for generating an RTL description with DFT from the behavioral description in accordance with the decision.
 6. An apparatus according to claim 5, wherein the decision making means includes: means for generating for each extracted operation a parameter indicating whether or not the operation is to be expanded into a plurality of circuit elements; and means for generating DFT information indicating how DFT is implemented and circuit information indicating how expansion is performed for the operation when it is decided that the DFT is to be applied to the operation before expansion, and the generating means includes: a behavioral synthesis unit for generating an RTL description from the behavioral description in accordance with the parameter, the RTL description including a first RTL description generated by expanding the operation into a plurality of circuit elements and a second RTL description generated without expanding the operation; and a DFT unit for generating the RTL description with DFT from the first and the second RTL description in accordance with the DFT information and the circuit information.
 7. An apparatus according to claim 6, wherein the DFT information and the circuit information are added to a DFT library which stores the DFT information for each circuit element, and the DFT unit generates the RTL description with DFT from the first and the second RTL description by referring to the DFT library.
 8. An apparatus according to claim 5, wherein the decision in the decision making means is made by evaluating an increase in circuit area that would result from applying DFT.
 9. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for DFT, said method steps comprising: (a) extracting operations contained in a behavioral description; (b) making a decision for each extracted operation as to whether DFT is to be applied to the operation before expansion or to each of a plurality of circuit elements into which the operation has been expanded; and (c) generating an RTL description with DFT from the behavioral description in accordance with the decision.
 10. A program storage device according to claim 9, wherein the step (b) includes the substeps of: (i) generating for each extracted operation a parameter indicating whether or not the operation is to be expanded into a plurality of circuit elements; and (ii) generating a DFT information indicating how DFT is implemented and circuit information indicating how expansion is performed for the operation when it is decided that the DFT is to be applied to the operation before expansion, and the step (c) includes the substeps of: (i) generating an RTL description from the behavioral description in accordance with the parameter, the RTL description including a first RTL description generated by expanding the operation into a plurality of circuit elements and a second RTL description generated without expanding the operation; and (ii) generating the RTL description with DFT from the first and the second RTL description in accordance with the DFT information and the circuit information.
 11. A program storage device according to claim 10, wherein the DFT information and the circuit information are added to a DFT library which stores the DFT information for each circuit element, and in the substep (c)(ii), the RTL description with DFT is generated from the first and the second RTL description by referring to the DFT library.
 12. A program storage device according to claim 9, wherein the decision in the step (b) is made by evaluating an increase in circuit area that would result from applying DFT. 